package web

import (
	"encoding/json"

	"gitee.com/xgotool/sqlite-logs-more/model"
	"gitee.com/xgotool/sqlite-logs-more/service/logs"
	"gitee.com/xiaoyutab/xgotool/xgin"
	"gitee.com/xiaoyutab/xgotool/xstring"
	"github.com/gin-gonic/gin"
)

// WEB端记录App日志
//
//	POST	log.app.create
func LogAppCreate(c *gin.Context) *xgin.Response {
	type temp_struct struct {
		Id      json.Number `json:"id" form:"id" xml:"id"`                // 日志ID，unix-纳秒时间戳 time.Now().UnixNano()
		Did     json.Number `json:"did" form:"did" xml:"did"`             // 设备ID
		Args    string      `json:"args" form:"args" xml:"args"`          // 程序名称
		File    string      `json:"file" form:"file" xml:"file"`          // 日志发生文件
		Line    json.Number `json:"line" form:"line" xml:"line"`          // 日志发生文件行数
		Level   string      `json:"level" form:"level" xml:"level"`       // 日志等级
		Content string      `json:"content" form:"content" xml:"content"` // 日志内容
	}
	temp := temp_struct{}
	if err := xgin.Bind(c, &temp); err != nil {
		return xgin.Resp().Error(err)
	}
	// 正式变量赋值
	// 请使用param进行参数验证、变量效验等操作
	param := model.AppLog{}
	param.Id = xstring.JInt64(temp.Id)
	param.Did = xstring.JInt64(temp.Did)
	param.Args = temp.Args
	param.File = temp.File
	param.Line = xstring.JInt64(temp.Line)
	param.Level = temp.Level
	param.Content = temp.Content
	if err := logs.AppLogCreate(&param); err != nil {
		return xgin.Resp().Error(err)
	}
	return xgin.Resp().SuccessEmpty()
}
